***Figure 1: Subject Ratings of Video Characteristics***


**Enjoyable**

gen t_meanr_enj = .
gen t_upperr_enj = .
gen t_lowerr_enj = .
gen t_meanf_enj = .
gen t_upperf_enj = .
gen t_lowerf_enj = .
gen pvalue_enj = .

*RVV
ttest video_q1 if (treatment == 1 | treatment == 3) & round == 1, by(treatment)
replace t_meanr_enj = r(mu_1)-r(mu_2) in 1
replace t_upperr_enj = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerr_enj = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

*FVV
ttest video_q1 if (treatment == 2 | treatment == 3) & round == 1, by(treatment)
replace t_meanf_enj = r(mu_1)-r(mu_2) in 1
replace t_upperf_enj = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerf_enj = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

anova video_q1 treatment if (treatment == 1 | treatment == 2) & round == 1 
replace pvalue_enj = Ftail(e(df_m), e(df_r), e(F)) in 1


**Frustrating**

gen t_meanr_fru = .
gen t_upperr_fru = .
gen t_lowerr_fru = .
gen t_meanf_fru = .
gen t_upperf_fru = .
gen t_lowerf_fru = .
gen pvalue_fru = .

*RVV
ttest video_q2 if (treatment == 1 | treatment == 3) & round == 1, by(treatment)
replace t_meanr_fru = r(mu_1)-r(mu_2) in 1
replace t_upperr_fru = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerr_fru = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

*FVV
ttest video_q2 if (treatment == 2 | treatment == 3) & round == 1, by(treatment)
replace t_meanf_fru = r(mu_1)-r(mu_2) in 1
replace t_upperf_fru = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerf_fru = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

anova video_q2 treatment if (treatment == 1 | treatment == 2) & round == 1
replace pvalue_fru = Ftail(e(df_m), e(df_r), e(F)) in 1


**Exciting**

gen t_meanr_exc = .
gen t_upperr_exc = .
gen t_lowerr_exc = .
gen t_meanf_exc = .
gen t_upperf_exc = .
gen t_lowerf_exc = .
gen pvalue_exc = .

*RVV
ttest video_q3 if (treatment == 1 | treatment == 3) & round == 1, by(treatment)
replace t_meanr_exc = r(mu_1)-r(mu_2) in 1
replace t_upperr_exc = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerr_exc = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

*FVV
ttest video_q3 if (treatment == 2 | treatment == 3) & round == 1, by(treatment)
replace t_meanf_exc = r(mu_1)-r(mu_2) in 1
replace t_upperf_exc = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerf_exc = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

anova video_q3 treatment if (treatment == 1 | treatment == 2) & round == 1
replace pvalue_exc = Ftail(e(df_m), e(df_r), e(F)) in 1


**Stressful**

gen t_meanr_str = .
gen t_upperr_str = .
gen t_lowerr_str = .
gen t_meanf_str = .
gen t_upperf_str = .
gen t_lowerf_str = .
gen pvalue_str = .

*RVV
ttest video_q4 if (treatment == 1 | treatment == 3) & round == 1, by(treatment)
replace t_meanr_str = r(mu_1)-r(mu_2) in 1
replace t_upperr_str = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerr_str = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

*FVV
ttest video_q4 if (treatment == 2 | treatment == 3) & round == 1, by(treatment)
replace t_meanf_str = r(mu_1)-r(mu_2) in 1
replace t_upperf_str = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerf_str = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

anova video_q4 treatment if (treatment == 1 | treatment == 2) & round == 1
replace pvalue_str = Ftail(e(df_m), e(df_r), e(F)) in 1


**Interesting**

gen t_meanr_inter = .
gen t_upperr_inter = .
gen t_lowerr_inter = .
gen t_meanf_inter = .
gen t_upperf_inter = .
gen t_lowerf_inter = .
gen pvalue_inter = .

*RVV
ttest video_q5 if (treatment == 1 | treatment == 3) & round == 1, by(treatment)
replace t_meanr_inter = r(mu_1)-r(mu_2) in 1
replace t_upperr_inter = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerr_inter = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

*FVV
ttest video_q5 if (treatment == 2 | treatment == 3) & round == 1, by(treatment)
replace t_meanf_inter = r(mu_1)-r(mu_2) in 1
replace t_upperf_inter = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerf_inter = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

anova video_q5 treatment if (treatment == 1 | treatment == 2) & round == 1
replace pvalue_inter = Ftail(e(df_m), e(df_r), e(F)) in 1


**Violent**

gen t_meanr_vio = .
gen t_upperr_vio = .
gen t_lowerr_vio = .
gen t_meanf_vio = .
gen t_upperf_vio = .
gen t_lowerf_vio = .
gen pvalue_vio = .

*RVV
ttest video_q6 if (treatment == 1 | treatment == 3) & round == 1, by(treatment)
replace t_meanr_vio = r(mu_1)-r(mu_2) in 1
replace t_upperr_vio = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerr_vio = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

*FVV
ttest video_q6 if (treatment == 2 | treatment == 3) & round == 1, by(treatment)
replace t_meanf_vio = r(mu_1)-r(mu_2) in 1
replace t_upperf_vio = (r(mu_1)-r(mu_2))+(r(sd_1)/(r(N_1)^(0.5))) in 1
replace t_lowerf_vio = (r(mu_1)-r(mu_2))-(r(sd_1)/(r(N_1)^(0.5))) in 1

anova video_q6 treatment if (treatment == 1 | treatment == 2) & round == 1
replace pvalue_vio = Ftail(e(df_m), e(df_r), e(F)) in 1


**Convert p-values to three digits for graphs**

sort subject round

*Convert pvalue_enj to string variable with 3 digits
replace pvalue_enj = round(pvalue_enj,0.001)
replace pvalue_enj = pvalue_enj*1000
rename pvalue_enj pvalue_enjold
tostring pvalue_enjold,gen(pvalue_enj)
gen count = length(pvalue_enj)
replace count =  0 if pvalue_enj == "."
replace pvalue_enj =  "" if pvalue_enj == "."
replace pvalue_enj = "0.00" + pvalue_enj if count == 1
replace pvalue_enj = "0.0" + pvalue_enj if count == 2
replace pvalue_enj = "0." + pvalue_enj if count == 3
drop count

*Convert pvalue_fru to string variable with 3 digits
replace pvalue_fru = round(pvalue_fru,0.001)
replace pvalue_fru = pvalue_fru*1000
rename pvalue_fru pvalue_fruold
tostring pvalue_fruold,gen(pvalue_fru)
gen count = length(pvalue_fru)
replace count =  0 if pvalue_fru == "."
replace pvalue_fru =  "" if pvalue_fru == "."
replace pvalue_fru = "0.00" + pvalue_fru if count == 1
replace pvalue_fru = "0.0" + pvalue_fru if count == 2
replace pvalue_fru = "0." + pvalue_fru if count == 3
drop count

*Convert pvalue_exc to string variable with 3 digits
replace pvalue_exc = round(pvalue_exc,0.001)
replace pvalue_exc = pvalue_exc*1000
rename pvalue_exc pvalue_excold
tostring pvalue_excold,gen(pvalue_exc)
gen count = length(pvalue_exc)
replace count =  0 if pvalue_exc == "."
replace pvalue_exc =  "" if pvalue_exc == "."
replace pvalue_exc = "0.00" + pvalue_exc if count == 1
replace pvalue_exc = "0.0" + pvalue_exc if count == 2
replace pvalue_exc = "0." + pvalue_exc if count == 3
drop count

*Convert pvalue_str to string variable with 3 digits
replace pvalue_str = round(pvalue_str,0.001)
replace pvalue_str = pvalue_str*1000
rename pvalue_str pvalue_strold
tostring pvalue_strold,gen(pvalue_str)
gen count = length(pvalue_str)
replace count =  0 if pvalue_str == "."
replace pvalue_str =  "" if pvalue_str == "."
replace pvalue_str = "0.00" + pvalue_str if count == 1
replace pvalue_str = "0.0" + pvalue_str if count == 2
replace pvalue_str = "0." + pvalue_str if count == 3
drop count

*Convert pvalue_inter to string variable with 3 digits
replace pvalue_inter = round(pvalue_inter,0.001)
replace pvalue_inter = pvalue_inter*1000
rename pvalue_inter pvalue_interold
tostring pvalue_interold,gen(pvalue_inter)
gen count = length(pvalue_inter)
replace count =  0 if pvalue_inter == "."
replace pvalue_inter =  "" if pvalue_inter == "."
replace pvalue_inter = "0.00" + pvalue_inter if count == 1
replace pvalue_inter = "0.0" + pvalue_inter if count == 2
replace pvalue_inter = "0." + pvalue_inter if count == 3
drop count

*Convert pvalue_vio to string variable with 3 digits
replace pvalue_vio = round(pvalue_vio,0.001)
replace pvalue_vio = pvalue_vio*1000
rename pvalue_vio pvalue_vioold
tostring pvalue_vioold,gen(pvalue_vio)
gen count = length(pvalue_vio)
replace count =  0 if pvalue_vio == "."
replace pvalue_vio =  "" if pvalue_vio == "."
replace pvalue_vio = "0.00" + pvalue_vio if count == 1
replace pvalue_vio = "0.0" + pvalue_vio if count == 2
replace pvalue_vio = "0." + pvalue_vio if count == 3
drop count

replace pvalue_enj = "stSans:({it:p} < 0.001)" in 1
replace pvalue_fru = "stSans:({it:p} < 0.001)" in 1
replace pvalue_exc = "stSans:({it:p} < 0.001)" in 1
replace pvalue_str = "stSans:({it:p} < 0.001)" in 1
replace pvalue_vio = "stSans:({it:p} < 0.001)" in 1

sort subject round


**Create the graph**

local pvalue_enj = pvalue_enj in 1

twoway  (bar t_meanr_enj x_r if _n == 1, barwidth(.5) color(gs8) lcolor(black) lwidth(vthin)) (rcap t_upperr_enj t_lowerr_enj x_r if _n == 1, lcolor(black)) (bar t_meanf_enj x_f if _n == 1, barwidth(.5) color(white) lcolor(black) lwidth(vthin)) (rcap t_upperf_enj t_lowerf_enj x_f if _n == 1, lcolor(black)), xscale(lstyle(none)) xlabel(0 " " 1 `""{bf:Enjoyable}" "{`pvalue_enj'}"' 2 " ",notick) yscale(off) yline(0) ylabel(,nogrid) name(enjoyable, replace) legend(off) ytitle("Difference from Non-Violent Video (NVV) Group",orientation(vertical))

local pvalue_fru = pvalue_fru in 1

twoway  (bar t_meanr_fru x_r if _n == 1, barwidth(.5) color(gs8) lcolor(black) lwidth(vthin)) (rcap t_upperr_fru t_lowerr_fru x_r if _n == 1, lcolor(black)) (bar t_meanf_fru x_f if _n == 1, barwidth(.5) color(white) lcolor(black) lwidth(vthin)) (rcap t_upperf_fru t_lowerf_fru x_f if _n == 1, lcolor(black)), xscale(lstyle(none)) xlabel(0 " " 1 `""{bf:Frustrating}" "{`pvalue_fru'}"'  2 " ",notick) yscale(off) yline(0) ylabel(,nogrid) name(frustrating, replace) legend(region(lwidth(none)) order(1 "Real Violence" "Video (RVV)") rows(1) cols(1) ring(0) position(2) symxsize(4) symysize(4) size(small))

addplot frustrating: pcarrowi -1.5 .15 -.15  0  (6) "NVV baseline" lcolor(black), norescaling  msize(vtiny) lwidth(vthin) legend(region(lwidth(none)) order(1 "Real Violence" "Video (RVV)") rows(1) cols(1) ring(0) position(2) symxsize(4) symysize(4) size(small))

local pvalue_exc = pvalue_exc in 1

twoway  (bar t_meanr_exc x_r if _n == 1, barwidth(.5) color(gs8) lcolor(black) lwidth(vthin)) (rcap t_upperr_exc t_lowerr_exc x_r if _n == 1, lcolor(black)) (bar t_meanf_exc x_f if _n == 1, barwidth(.5) color(white) lcolor(black) lwidth(vthin)) (rcap t_upperf_exc t_lowerf_exc x_f if _n == 1, lcolor(black)), xscale(lstyle(none)) xlabel(0 " " 1 `""{bf:Exciting}" "{`pvalue_exc'}"'  2 " ",notick) yscale(off) yline(0) ylabel(,nogrid) name(exciting, replace) legend(region(lwidth(none)) order(3 "Fictional Violence" "Video (FVV)") rows(1) cols(1) ring(0) position(10) symxsize(4) symysize(4) size(small))

addplot exciting: pcarrowi 1.75 0.55 1.325 1.2 (9) "Standard errors" lcolor(black), norescaling  msize(vtiny) lwidth(vthin) legend(region(lwidth(none)) order(3 "Fictional Violence" "Video (FVV)") rows(1) cols(1) ring(0) position(12) symxsize(4) symysize(4) size(small))

local pvalue_str = pvalue_str in 1

twoway  (bar t_meanr_str x_r if _n == 1, barwidth(.5) color(gs8) lcolor(black) lwidth(vthin)) (rcap t_upperr_str t_lowerr_str x_r if _n == 1, lcolor(black)) (bar t_meanf_str x_f if _n == 1, barwidth(.5) color(white) lcolor(black) lwidth(vthin)) (rcap t_upperf_str t_lowerf_str x_f if _n == 1, lcolor(black)), xscale(lstyle(none)) xlabel(0 " " 1 `""{bf:Stressful}" "{`pvalue_str'}"' 2 " ",notick) yscale(off) yline(0) ylabel(,nogrid) name(stressful, replace) ytitle("Difference from Non-Violent Video (NVV) Group",orientation(vertical)) legend(off)

local pvalue_inter = pvalue_inter in 1

twoway  (bar t_meanr_inter x_r if _n == 1, barwidth(.5) color(gs8) lcolor(black) lwidth(vthin)) (rcap t_upperr_inter t_lowerr_inter x_r if _n == 1, lcolor(black)) (bar t_meanf_inter x_f if _n == 1, barwidth(.5) color(white) lcolor(black) lwidth(vthin)) (rcap t_upperf_inter t_lowerf_inter x_f if _n == 1, lcolor(black)), xscale(lstyle(none)) xlabel(0 " " 1 `""{bf:Interesting}" "{stSans:({it:p} = `pvalue_inter')}"'  2 " ",notick) yscale(off) yline(0) ylabel(,nogrid) name(interesting, replace) legend(off)

local pvalue_vio = pvalue_vio in 1

twoway  (bar t_meanr_vio x_r if _n == 1, barwidth(.5) color(gs8) lcolor(black) lwidth(vthin)) (rcap t_upperr_vio t_lowerr_vio x_r if _n == 1, lcolor(black)) (bar t_meanf_vio x_f if _n == 1, barwidth(.5) color(white) lcolor(black) lwidth(vthin)) (rcap t_upperf_vio t_lowerf_vio x_f if _n == 1, lcolor(black)), xscale(lstyle(none)) xlabel(0.3 " " 1 `""{bf:Violent}" "{`pvalue_vio'}"' 1.7 " ",notick) ylabel(-4 -3 -2 -1 0 1 "+1" 2 "+2" 3 "+3" 4 "+4", nogrid labgap(2) labsize(small)) yline(0) name(violent, replace) legend(off) ytitle("Difference from Non-Violent Video (NVV) Group",orientation(vertical)) 

graph combine violent stressful frustrating exciting interesting enjoyable, iscale(1) ycommon imargin(0) cols(6) rows(1) xsize(6) ysize(2.5) name(emotionscombined, replace)    note(" " " " "{space 15}{bf:Note:} {it:p}-values refer to a one-way ANOVA between the RVV and FVV, testing the null hypothesis that {&mu}{subscript:RVV} = {&mu}{subscript:FVV}.")

graph export Graphs/figure-1.pdf, replace

graph drop violent stressful frustrating exciting interesting enjoyable
